The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
The rise in hardware and software support costs has given way to a new technology delivery model in which an application service provider hosts applications coupled to data storage units on networked devices that are owned by the application service provider. The application service provider's customers, typically business enterprises, connect to the hosted applications via a web browser and enter data via the applications with the expectation that the data entered will be available on-demand whenever needed. The customers typically access the data for various data mining or data aggregation operations required to perform various analytics, such as determining particular trends related to their enterprise's operations. The application service provider rarely has advanced notice of when a customer may request access to its data; therefore, data entered by customers must be available at all times. Consequently, the application service provider must ensure that data entered by customers is always recorded and stored, and that customers may access that data, on-demand, for later consumption.
To fulfill their responsibility, the application service provider typically has a set of source data storage units coupled to their applications that record and store data from customers. Furthermore, for efficiency and cost benefit purposes, application service providers typically maintain and use a multitenant architecture. A multitenant architecture uses a single set of data integrity rules or schema to store data for all their customers or “tenants”. The application service provider then updates a separate set of target data storage units with data from the source data storage units. A customer connects to the target data storage units as one means by which the customer may access its data stored with the application service provider. Thus, the application service provider must update data available in the target data storage units in as near real-time as possible to ensure that data available in the target data storage units reflects data in the source data storage units. The application service provider must also ensure that data in the target data storage units is consistent with source data storage units.
Several existing processes, such as extract, transform, and load (ETL), are available to the application service provider to update target data storage units. However, these existing processes usually are incapable of providing variable levels of control, including fine control, over copying data per customer, in a multi-tenant architecture, at an interval that is independent with respect to another customer. The inability to provide such fine-grained control may force inefficient resource allocation by the application service provider and prevents the application service provider from updating target data storage units, per customer, in near real-time. Lack of such fine-grained control also fails the application service provider from ensuring that data per customer is also consistent across source data storage unit and target data storage unit in an efficient manner. Thus, the inability to update target data storage units, on a per customer basis, while ensuring data consistency across source and target data storage units may significantly reduce the value of the service provided by the application service provider.
Therefore, the data management field has developed a long-felt but unfulfilled need for an approach that provides control over copying data at an independent per customer interval.